<TITLE>spinner - Create and manipulate a spinner widget</TITLE>
<H1>spinner - Create and manipulate a spinner widget</H1>

</pre><H2>SYNOPSIS</H2>
<B>spinner<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Widget &lt;- Labeledwidget &lt;- Spinner
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>background</B><br>
<B>foreground</B><br>
<B>insertBorderWidth</B><br>
<B>justify</B><br>
<B>selectForeground</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>highlightColor</B><br>
<B>insertOffTime</B><br>
<B>relief</B><br>
<B>textVariable</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>highlightThickness</B><br>
<B>insertOnTime</B><br>
<B>selectBackground</B><br>
</td>
<td valign=top>
<B>exportSelection</B><br>
<B>insertBackground</B><br>
<B>insertWidth</B><br>
<B>selectBorderWidth</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
</pre><H2>ASSOCIATED OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>show</B><br>
</td>
<td valign=top>
<B>state</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated options.
</pre><H2>INHERITED OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>childSitePos</B><br>
<B>invalid</B><br>
<B>width</B><br>
</td>
<td valign=top>
<B>command</B><br>
<B>textBackground</B><br>
</td>
<td valign=top>
<B>fixed</B><br>
<B>textFont</B><br>
</td>
<td valign=top>
<B>focusCommand</B><br>
<B>validate</B><br>
</td>
</table>
<P>
See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
inherited options.
<P>
<table cellpadding=5>
<td valign=top>
<B>disabledForeground</B><br>
<B>labelMargin</B><br>
<B>state</B><br>
</td>
<td valign=top>
<B>labelBitmap</B><br>
<B>labelPos</B><br>
</td>
<td valign=top>
<B>labelFont</B><br>
<B>labelText</B><br>
</td>
<td valign=top>
<B>labelImage</B><br>
<B>labelVariable</B><br>
</td>
</table>
<P>
See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
inherited options.
</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
<P>
<pre>
Name:                   <B>arrowOrient</B>
Class:                  <B>Orient</B>
Command-Line Switch:	<B>-arroworient</B>
</pre>
<UL>
Specifies placement of arrow buttons: <B>horizontal</B> or <B>vertical</B>.
The default is vertical.
</UL>
<P>
<pre>
Name:                   <B>decrement</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-decrement</B>
</pre>
<UL>
Tcl command to be executed when down arrow is pressed.
</UL>
<P>
<pre>
Name:                   <B>increment</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-increment</B>
</pre>
<UL>
Tcl command to be executed when up arrow is pressed.
</UL>
<P>
<pre>
Name:                   <B>repeatDelay</B>
Class:                  <B>RepeatDelay</B>
Command-Line Switch:	<B>-repeatdelay</B>
</pre>
<UL>
Specifies the initial delay in milliseconds before the spinner repeat action 
on the arrow buttons engages.  The default is 300 milliseconds.
</UL>
<P>
<pre>
Name:                   <B>repeatInterval</B>
Class:                  <B>RepeatInterval</B>
Command-Line Switch:	<B>-repeatinterval</B>
</pre>
<UL>
Specifies the repeat delay in milliseconds between selections of the arrow 
buttons.  A repeatinterval of 0 disables button repeat.  The default is 
100 milliseconds.
</UL>
<P>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>spinner</B> command creates a spinner widget.  The spinner is 
comprised of an entryfield plus up and down arrow buttons. 
Arrows may be drawn horizontally or vertically.
</pre>

</pre><H2>METHODS</H2>
<P>
The <B>spinner</B> command creates a new Tcl command whose
name is <I>pathName</I>.  This
command may be used to invoke various
operations on the widget.  It has the following general form:
<pre>
<I>pathName option </I>?<I>arg arg ...</I>?
</pre>
<I>Option</I> and the <I>arg</I>s
determine the exact behavior of the command.  The following
commands are possible for spinner widgets:
</pre><H2>ASSOCIATED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>delete</B><br>
<B>insert</B><br>
</td>
<td valign=top>
<B>get</B><br>
<B>scan</B><br>
</td>
<td valign=top>
<B>icursor</B><br>
<B>selection</B><br>
</td>
<td valign=top>
<B>index</B><br>
<B>xview</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated methods.
</pre><H2>INHERITED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>childsite</B><br>
</td>
<td valign=top>
<B>clear</B><br>
</td>
<td valign=top>
<B>peek</B><br>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="entryfield.n.html"> "entryfield" </A> manual entry for details on the associated methods.
</pre><H2>WIDGET-SPECIFIC METHODS</H2>
<DL>
<DT> <I>pathName <B>cget</B> <I>option</I>
</I></B>
<DD> Returns the current value of the configuration option given
by <I>option</I>.
<I>Option</I> may have any of the values accepted by the <B>spinner</B>
command.
</DL>
<DL>
<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
</I></B>
<DD> Query or modify the configuration options of the widget.
If no <I>option</I> is specified, returns a list describing all of
the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
information on the format of this list).  If <I>option</I> is specified
with no <I>value</I>, then the command returns a list describing the
one named option (this list will be identical to the corresponding
sublist of the value returned if no <I>option</I> is specified).  If
one or more <I>option-value</I> pairs are specified, then the command
modifies the given widget option(s) to have the given value(s);  in
this case the command returns an empty string.
<I>Option</I> may have any of the values accepted by the <B>spinner</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>down</B>
</I></B>
<DD> Derived classes may overload this method to specialize functionality.
</DL>
<DL>
<DT> <I>pathName <B>up</B>
</I></B>
<DD> Derived classes may overload this method to specialize functionality.

</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>downarrow</B>
Class:                  <B>Canvas</B>
</pre>
<UL>
The downarrow component is the downward pointing button of the spinner.  See
the "canvas" widget manual entry for details on the downarrow component item.
</UL>
<P>
<pre>
Name:                   <B>uparrow</B>
Class:                  <B>Canvas</B>
</pre>
<UL>
The uparrow component is the upward pointing button of the spinner.  See
the "canvas" widget manual entry for details on the uparrow component item.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
 set months {January February March April May June July \\
                 August September October November December}

 proc blockInput {char} {
     return 0
 }

 proc spinMonth {step} {
     global months

     set index [expr [lsearch $months [.sm get]] + $step]

     if {$index &lt; 0} {set index 11}
     if {$index &gt; 11} {set index 0}

     .sm delete 0 end
     .sm insert 0 [lindex $months $index]
 }

 spinner .sm -labeltext "Month : " -width 10 -fixed 10 -validate blockInput \\
             -decrement {spinMonth -1} -increment {spinMonth 1}
 .sm insert 0 January

 pack .sm -padx 10 -pady 10
</pre>
</pre><H2>ACKNOWLEDGEMENTS:</H2>
<P>
Ken Copeland &lt;ken@hilco.com&gt;
<UL>
10/18/95 - Added auto-repeat action to spinner arrow buttons.
</UL>
<P>
</pre><H2>AUTHOR</H2>
Sue Yockey
</pre><H2>KEYWORDS</H2>
spinner, widget
